package app.vista;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import vo.PendienteVO;

import app.controlador.ControladorReposicionArticulosDeFabrica;
import framework.modelo.Businessdelegate;
import framework.vista.Vista;

public class ReposicionArticulosDeFabrica extends Vista implements ActionListener
{
	private static final long serialVersionUID = 1L;

	public ReposicionArticulosDeFabrica(Businessdelegate bd)
	{
		super(bd);
	}

	public void inicializar()
	{
		JFC jfc=new JFC();
		
		if(jfc.getSelectedFile()!=null)
		{
			((ControladorReposicionArticulosDeFabrica)(this.getControlador())).obtenerReposicionArticulosDeFabricaXML(jfc.getSelectedFile().getAbsolutePath());
			System.out.println("Reposicion Articulos de Fabrica enviada al JBoss");
		}

		componentes();
		propiedades();
		centrarPantalla();
		
		this.setVisible(true);
	}

	@SuppressWarnings("unchecked")
	public void componentes()
	{
		Vector pendientes;
		DefaultTableModel defaulttablemodel;
		PendienteVO pendiente;
		String fila[]=new String[6];
		
		Container c = this.getContentPane();
		c.setLayout(new BorderLayout());
				
		JPanel norte=new JPanel(new GridLayout(1,2,0,0));
		
		ImageIcon logoZara= new ImageIcon ("./data/logo2.jpg", "ZARA");
		JLabel etiqueta=new JLabel(logoZara);
		
		norte.add(etiqueta);
		
		c.add(norte,BorderLayout.NORTH);
		
		pendientes=((ControladorReposicionArticulosDeFabrica)(this.getControlador())).obtenerAEnviarYPendientes();
		System.out.println("Obtiene lista de Enviar y Pendientes desde el Businessdelegate");
		
		defaulttablemodel=new DefaultTableModel();
		defaulttablemodel.addColumn("Articulo");
		defaulttablemodel.addColumn("Tienda");
		defaulttablemodel.addColumn("a Enviar a Tienda");
		defaulttablemodel.addColumn("a Pedir de Fabrica");
		defaulttablemodel.addColumn("a Llegar de Fabrica y Enviar");
		defaulttablemodel.addColumn("a Llegar de Fabrica");
		
		fila[0]="Articulo";
		fila[1]="Tienda";
		fila[2]="a Enviar a Tienda";
		fila[3]="a Pedir de Fabrica";
		fila[4]="a Llegar de Fabrica y Enviar";
		fila[5]="a Llegar de Fabrica";
		defaulttablemodel.addRow(fila);
		
		if(pendientes!=null)
		{
			for(int i=0;i<pendientes.size();i++)
			{
				pendiente=(PendienteVO)pendientes.get(i);
				
				fila[0]=String.valueOf((pendiente.getArticulo()).getDescripcion());
				fila[1]=String.valueOf((pendiente.getTienda()).getNombre());
				fila[2]=String.valueOf(pendiente.getAEnviarATienda());
				fila[3]=String.valueOf(pendiente.getAPedirAFabrica());
				fila[4]=String.valueOf(pendiente.getALlegarDeFabricaYEnviar());
				fila[5]=String.valueOf(pendiente.getALlegarDeFabrica());
				defaulttablemodel.addRow(fila);
			}
		}
		JTable table=new JTable(defaulttablemodel);
		
		c.add(table,BorderLayout.CENTER);
	
		JPanel sur=new JPanel(new FlowLayout());
		JButton volver=new JButton("Volver");
		volver.addActionListener(this);
		volver.setActionCommand("btnVolver");

		sur.add(volver);
		c.add(sur, BorderLayout.SOUTH);
	}

	public void propiedades()
	{
		setTitle("Reposicion de Articulos de Fabrica");
        setLocation(100, 100);
        setIconImage(new ImageIcon("./data/icon.jpg").getImage());
        // setResizable(false);
        pack(); 
	}

	public void centrarPantalla()
	{
		Dimension pantalla=Toolkit.getDefaultToolkit().getScreenSize();
		Dimension ventana=this.getSize();

		this.setLocation((pantalla.width -  ventana.width)/2,(pantalla.height - ventana.height)/2);	
	}

	public void actionPerformed(ActionEvent e)
	{
		// btnVolver presionado
		if("btnVolver".equals(e.getActionCommand())) 
		{
			this.setVisible(false);
		}				
	}
}
